package com.zzyl.common.ai;

import cn.hutool.http.HttpUtil;
import cn.hutool.http.Method;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author: zhengsuyang
 * @Desc:
 * @create: 2025-10-13 19:49
 **/
@Component
public class OllamaHttpAiModelInvoker {
    public  String qianfanHttpInvoker(String prompt) {
        Map messageMap = Map.of("role","user","content",prompt);

        List messages = List.of(messageMap);

        Map bodyMap = new HashMap();
        bodyMap.put("model","deepseek-r1:7b");
        bodyMap.put("max_output_tokens",4000);
        bodyMap.put("messages",messages);
        bodyMap.put("stream",false);

        String body = HttpUtil.createRequest(Method.POST, "http://localhost:11434/api/chat")
                // 设置头
                // 设置body参数  query   form
                .body(JSONUtil.toJsonStr(bodyMap))
                .execute().body();

        System.out.println(body);

        // 把json字符串转成对象
        JSONObject jsonObject = JSONUtil.parseObj(body);
        //
        String content = jsonObject.getByPath("message.content", String.class);
//        content =   "<think> 好的谢谢 </think>```json\n{\n\t\"totalCheckDate\": \"2023-10-10\",\n\t\"healthAssessment\": {\n\t\t\"riskLevel\": \"risk\",\n\t\t\"healthIndex\": 75.50\n\t},\n\t\"abnormalData\": [\n\t\t{\n\t\t\t\"conclusion\": \"心率略快，偶发早搏，皮肤弹性差，四肢末梢凉，提示可能的循环问题\",\n\t\t\t\"examinationItem\": \"心率\",\n\t\t\t\"result\": \"92次/分\",\n\t\t\t\"referenceValue\": \"\u003c100（正常成人静息心率）\",\n\t\t\t\"unit\": \"次/分\",\n\t\t\t\"interpret\": \"心率略快可能由多种因素引起，包括但不限于焦虑、运动、药物副作用或潜在的心脏问题。偶发早搏可能是心脏电活动异常的表现。皮肤弹性差和四肢末梢凉可能与血液循环不良有关。\",\n\t\t\t\"advice\": \"建议进行心电图检查和血管功能评估，以进一步了解心脏和血管的健康状况。同时，保持健康的生活方式，包括规律作息、适量运动和健康饮食。\"\n\t\t},\n\t\t{\n\t\t\t\"conclusion\": \"视力下降，符合老视特征\",\n\t\t\t\"examinationItem\": \"视力\",\n\t\t\t\"result\": \"左眼0.3，右眼0.4\",\n\t\t\t\"referenceValue\": \"正常视力应接近1.0\",\n\t\t\t\"unit\": \"-\",\n\t\t\t\"interpret\": \"视力下降可能是老视（老花眼）的表现，这是随着年龄增长而出现的正常生理现象。\",\n\t\t\t\"advice\": \"建议定期复查视力，并考虑配戴老花镜以改善视力。\"\n\t\t},\n\t\t{\n\t\t\t\"conclusion\": \"口腔粘膜轻微炎症，唇部干燥脱屑，牙齿部分缺失伴有较多牙石，牙周炎及牙龈退缩\",\n\t\t\t\"examinationItem\": \"口腔检查\",\n\t\t\t\"result\": \"口腔粘膜轻微炎症，唇部干燥脱屑，牙齿部分缺失，余牙石较多，牙周炎，牙龈退缩\",\n\t\t\t\"referenceValue\": \"口腔粘膜无炎症，唇部湿润，牙齿完整无牙石，牙周健康\",\n\t\t\t\"unit\": \"-\",\n\t\t\t\"interpret\": \"口腔粘膜炎症和唇部干燥脱屑可能与口腔卫生不良、缺水或维生素缺乏有关。牙齿部分缺失、牙石和牙周炎是口腔健康问题的表现，可能导致牙齿松动和脱落。\",\n\t\t\t\"advice\": \"建议口腔科进一步检查和治疗，包括清洁牙齿、治疗牙周炎和补充必要的维生素。\"\n\t\t},\n\t\t{\n\t\t\t\"conclusion\": \"轻度脂肪肝可能\",\n\t\t\t\"examinationItem\": \"肝脏B超\",\n\t\t\t\"result\": \"肝脏实质回声略粗糙\",\n\t\t\t\"referenceValue\": \"肝脏实质回声均匀\",\n\t\t\t\"unit\": \"-\",\n\t\t\t\"interpret\": \"轻度脂肪肝可能与肥胖、高脂饮食、缺乏运动或酒精摄入过多有关。\",\n\t\t\t\"advice\": \"建议调整饮食，减少高脂食物摄入，增加有氧运动，限制酒精摄入，并定期复查肝脏B超。\"\n\t\t},\n\t\t{\n\t\t\t\"conclusion\": \"胆囊壁毛糙，考虑慢性胆囊炎可能\",\n\t\t\t\"examinationItem\": \"胆囊B超\",\n\t\t\t\"result\": \"胆囊壁毛糙\",\n\t\t\t\"referenceValue\": \"胆囊壁光滑\",\n\t\t\t\"unit\": \"-\",\n\t\t\t\"interpret\": \"胆囊壁毛糙可能是慢性胆囊炎的表现，与胆囊内结石、感染或胆汁淤积有关。\",\n\t\t\t\"advice\": \"建议进一步检查胆囊功能，如有必要，进行胆囊炎的治疗。同时，保持低脂饮食，避免暴饮暴食。\"\n\t\t},\n\t\t{\n\t\t\t\"conclusion\": \"脾轻度增大\",\n\t\t\t\"examinationItem\": \"脾脏B超\",\n\t\t\t\"result\": \"脾轻度增大\",\n\t\t\t\"referenceValue\": \"脾大小正常\",\n\t\t\t\"unit\": \"-\",\n\t\t\t\"interpret\": \"脾轻度增大可能与感染、炎症、血液疾病或肝脏疾病有关。\",\n\t\t\t\"advice\": \"建议进一步检查脾脏功能和相关疾病，以确定脾增大的原因并进行相应治疗。\"\n\t\t},\n\t\t{\n\t\t\t\"conclusion\": \"右肾小囊肿可能\",\n\t\t\t\"examinationItem\": \"肾脏B超\",\n\t\t\t\"result\": \"右肾下极见一大小约5mm的无回声区\",\n\t\t\t\"referenceValue\": \"肾脏无异常回声区\",\n\t\t\t\"unit\": \"-\",\n\t\t\t\"interpret\": \"右肾小囊肿可能是肾脏的良性病变，通常无需特殊治疗，但需定期监测其大小变化。\",\n\t\t\t\"advice\": \"建议定期复查肾脏B超，以监测囊肿的大小变化。如有增大或出现症状，及时就医。\"\n\t\t},\n\t\t{\n\t\t\t\"conclusion\": \"前列腺形态略增大，回声欠均匀\",\n\t\t\t\"examinationItem\": \"前列腺B超\",\n\t\t\t\"result\": \"前列腺形态略增大，回声欠均匀\",\n\t\t\t\"referenceValue\": \"前列腺大小正常，回声均匀\",\n\t\t\t\"unit\": \"-\",\n\t\t\t\"interpret\": \"前列腺形态略增大和回声欠均匀可能与前列腺增生或炎症有关。\",\n\t\t\t\"advice\": \"建议进行前列腺特异性抗原（PSA）检查，以排除前列腺疾病。同时，保持健康的生活方式，包括适量运动和健康饮食。\"\n\t\t},\n\t\t{\n\t\t\t\"conclusion\": \"空腹血糖临界\",\n\t\t\t\"examinationItem\": \"空腹血糖\",\n\t\t\t\"result\": \"6.1mmol/L\",\n\t\t\t\"referenceValue\": \"3.9-6.1mmol/L\",\n\t\t\t\"unit\": \"mmol/L\",\n\t\t\t\"interpret\": \"空腹血糖处于临界值，可能提示糖代谢异常或糖尿病前期。\",\n\t\t\t\"advice\": \"建议控制饮食，减少高糖食物摄入，增加膳食纤维摄入，并定期复查空腹血糖和餐后血糖。\"\n\t\t}\n\t],\n\t\"systemScore\": {\n\t\t\"breathingSystem\": 95,\n\t\t\"digestiveSystem\": 80,\n\t\t\"endocrineSystem\": 85,\n\t\t\"immuneSystem\": 90,\n\t\t\"circulatorySystem\": 75,\n\t\t\"urinarySystem\": 80,\n\t\t\"motionSystem\": 95,\n\t\t\"senseSystem\": 80\n\t},\n\t\"summarize\": \"体检报告中尿蛋⽩、癌胚抗原、⾎沉均正常，空腹⾎糖处于临界值，总胆固醇、⽢油三酯、低密度脂蛋⽩胆固醇、⾎清载脂蛋⽩B、动脉硬化指数、⽩细胞、平均红细胞体积、平均⾎红蛋⽩均正常，B超提示肝脏、胆囊、脾脏、肾脏、前列腺存在异常，综合这些临床指标和数据分析：肾脏、肝胆、⼼脑⾎管存在隐患，其中⼼脑⾎管有“⾼危”⻛险，需关注心率和血管功能；肾脏部位有“中危”⻛险，建议定期监测；肝胆部位有“低危”⻛险，建议调整饮食和生活习惯。\"\n}\n```";

        // 处理<think>
        String[] split = content.split("</think>");
        System.out.println(split[1]);
        String str = split[1];
        // 处理前面的```json
        str = str.replace("```json", "");
        // 处理后面的```
        str = str.replace("```", "");
        return str;
    }
}
